//环境配置 请求拦截 响应拦截 get post
// 1.引入依赖包
import axios from "axios"
import Vue from "vue"
import qs from "querystring"
import {Toast} from "vant"
// 2.环境配置
if (process.env.NODE_ENV === "development") {
    Vue.prototype.$pre = "http://localhost:3000"
}

if (process.env.NODE_ENV === "production") {
    Vue.prototype.$pre = ""
}

// 3.请求拦截 
axios.interceptors.request.use(config => {
    if (config.url !== "/api/login" && config.url !== "/api/register") {
        config.headers.authorization = JSON.parse(localStorage.getItem("user")).token
    }
    return config;
})

// 4.响应拦截
axios.interceptors.response.use(res => {
    //打印
    console.log("本次请求地址：" + res.config.url);
    // console.log(res);

    //失败处理
    if (res.data.code !== 200) {
        Toast(res.data.msg)
    }
    return res;
})
/**
 * eg:get("/api/getCate",{}).then(res)
 *
 * @param {*} url 请求地址
 * @param {*} [params={}] 请求参数集合
 */
export function get(url, params = {}) {
    return axios({
        url,
        method: "get",
        params
    })
}

/**
 * eg:post("/login",{phone:"123"}).then(res=>{})
 *
 * @param {*} url 请求地址
 * @param {*} [data={}] 请求参数集合，默认是{}
 * @param {boolean} [isFile=false] 用来判断是否有文件，有就传true;没有不需要传参
 * @returns
 */
export function post(url, data = {}, isFile = false) {
    let params = null;
    //有文件
    if (isFile) {
        params = new FormData();
        for (let i in data) {
            params.append(i, data[i])
        }
    } else {
        //无文件
        params = qs.stringify(data)
    }

    return axios({
        url,
        method: "post",
        data: params
    })
}



